"""
符号{}，类似Java中的Set集合
特点：无序、不可重复
"""
# 定义集合
my_set = {"熊猫", "大象", "老虎", "熊猫", "火烈鸟"}
print(my_set, type(my_set)) # {'大象', '熊猫', '老虎', '火烈鸟'} <class 'set'>

# 定义空集合
empty_set2 = set()
print(f"empty_set2：{empty_set2}  {type(empty_set2)}") # empty_set2：set()  <class 'set'>
# 添加元素 set.add(元素)
my_set = {"熊猫", "大象", "老虎", "熊猫", "火烈鸟"}
my_set.add("孔雀")
print(my_set) # {'孔雀', '火烈鸟', '熊猫', '老虎', '大象'}

# 移除元素 set.remove(元素)
my_set = {"熊猫", "大象", "老虎", "熊猫", "火烈鸟"}
my_set.remove("火烈鸟")
print(my_set) # {'熊猫', '大象', '老虎'}

# 随机取出元素 set.pop()，集合中会删除取出的元素
my_set = {"熊猫", "大象", "老虎", "熊猫", "火烈鸟"}
element = my_set.pop()
print(element, my_set) # 熊猫 {'老虎', '火烈鸟', '大象'}

# 清空集合 set.clear()
my_set = {"熊猫", "大象", "老虎", "熊猫", "火烈鸟"}
my_set.clear()
print(my_set) # set()

# 取两个集合差集，得到新集合 set3 = set1.difference(set2) 取出set1中与set2不一样的元素
set1 = {1, 2, 3}
set2 = {1, 4, 6}
set3 = set1.difference(set2)
print(f"set3:{set3}, set1:{set1}, set2:{set2}") # set3:{2, 3}, set1:{1, 2, 3}, set2:{1, 4, 6}

# 取两个集合差集，修改原来的集合 set1.difference_update(set2) 修改set1，取出set1中与set2不一样的元素
set1 = {1, 2, 3}
set2 = {1, 4, 6}
set1.difference_update(set2)
print(f"set1:{set1}, set2:{set2}") # set1:{2, 3}, set2:{1, 4, 6}

# 取并集 set1.union(set2)
set1 = {1, 2, 3}
set2 = {1, 4, 6}
set3 = set1.union(set2)
print(f"set3:{set3}, set1:{set1}, set2:{set2}") # set3:{1, 2, 3, 4, 6}, set1:{1, 2, 3}, set2:{1, 4, 6}

# 获取集合元素个数
my_set = {1, 2, 3, 4, 6, 6}
len = len(my_set)
print("集合长度：", len)

# 遍历集合
# while循环不能用，因为集合不支持下标索引
# for循环
for element in my_set:
    print(element)